using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._TileCache
{
    /// <summary>
    /// <para>Generate Tile Cache Tiling Scheme</para>
    /// <para>Creates a tiling scheme file based on the information from the source dataset. The tiling scheme file will then be used in the Manage Tile Cache tool when creating cache tiles.</para>
    /// <para>根据源数据集中的信息创建切片方案文件。然后，在创建缓存切片时，将在管理切片缓存工具中使用切片方案文件。</para>
    /// </summary>    
    [DisplayName("Generate Tile Cache Tiling Scheme")]
    public class GenerateTileCacheTilingScheme : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public GenerateTileCacheTilingScheme()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_dataset">
        /// <para>Input Data Source</para>
        /// <para>The source to be used to generate the tiling scheme. It can be a raster dataset, a mosaic dataset, or a map.</para>
        /// <para>用于生成切片方案的源。它可以是栅格数据集、镶嵌数据集或地图。</para>
        /// </param>
        /// <param name="_out_tiling_scheme">
        /// <para>Output Tiling Scheme</para>
        /// <para>The path and file name for the output tiling scheme to be created.</para>
        /// <para>要创建的输出切片方案的路径和文件名。</para>
        /// </param>
        /// <param name="_tiling_scheme_generation_method">
        /// <para>Generation Method</para>
        /// <para><xdoc>
        ///   <para>Choose to use a new or predefined tiling scheme. You can define a new tiling scheme with this tool or browse to a predefined tiling scheme file (.xml).</para>
        ///   <bulletList>
        ///     <bullet_item>New—Define a new tiling scheme using other parameters in this tool to define scale levels, image format, storage format, and so on. This is the default.</bullet_item><para/>
        ///     <bullet_item>Predefined—Use a tiling scheme .xml file that already exists on disk.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择使用新的或预定义的切片方案。您可以使用此工具定义新的切片方案，也可以浏览至预定义的切片方案文件 （.xml）。</para>
        ///   <bulletList>
        ///     <bullet_item>新建 - 使用此工具中的其他参数定义新的切片方案，以定义比例级别、影像格式、存储格式等。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>预定义 - 使用切片方案.xml磁盘上已存在的文件。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_number_of_scales">
        /// <para>Number of Scales</para>
        /// <para>The number of scale levels to be created in the tiling scheme.</para>
        /// <para>要在切片方案中创建的比例级别数。</para>
        /// </param>
        public GenerateTileCacheTilingScheme(object _in_dataset, object _out_tiling_scheme, _tiling_scheme_generation_method_value _tiling_scheme_generation_method, long? _number_of_scales)
        {
            this._in_dataset = _in_dataset;
            this._out_tiling_scheme = _out_tiling_scheme;
            this._tiling_scheme_generation_method = _tiling_scheme_generation_method;
            this._number_of_scales = _number_of_scales;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Generate Tile Cache Tiling Scheme";

        public override string CallName => "management.GenerateTileCacheTilingScheme";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_in_dataset, _out_tiling_scheme, _tiling_scheme_generation_method.GetGPValue(), _number_of_scales, _predefined_tiling_scheme, _scales, _scales_type.GetGPValue(), _tile_origin, _dpi, _tile_size.GetGPValue(), _tile_format.GetGPValue(), _tile_compression_quality, _storage_format.GetGPValue(), _lerc_error];

        /// <summary>
        /// <para>Input Data Source</para>
        /// <para>The source to be used to generate the tiling scheme. It can be a raster dataset, a mosaic dataset, or a map.</para>
        /// <para>用于生成切片方案的源。它可以是栅格数据集、镶嵌数据集或地图。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Data Source")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_dataset { get; set; }


        /// <summary>
        /// <para>Output Tiling Scheme</para>
        /// <para>The path and file name for the output tiling scheme to be created.</para>
        /// <para>要创建的输出切片方案的路径和文件名。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Tiling Scheme")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_tiling_scheme { get; set; }


        /// <summary>
        /// <para>Generation Method</para>
        /// <para><xdoc>
        ///   <para>Choose to use a new or predefined tiling scheme. You can define a new tiling scheme with this tool or browse to a predefined tiling scheme file (.xml).</para>
        ///   <bulletList>
        ///     <bullet_item>New—Define a new tiling scheme using other parameters in this tool to define scale levels, image format, storage format, and so on. This is the default.</bullet_item><para/>
        ///     <bullet_item>Predefined—Use a tiling scheme .xml file that already exists on disk.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择使用新的或预定义的切片方案。您可以使用此工具定义新的切片方案，也可以浏览至预定义的切片方案文件 （.xml）。</para>
        ///   <bulletList>
        ///     <bullet_item>新建 - 使用此工具中的其他参数定义新的切片方案，以定义比例级别、影像格式、存储格式等。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>预定义 - 使用切片方案.xml磁盘上已存在的文件。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Generation Method")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _tiling_scheme_generation_method_value _tiling_scheme_generation_method { get; set; }

        public enum _tiling_scheme_generation_method_value
        {
            /// <summary>
            /// <para>New</para>
            /// <para>New—Define a new tiling scheme using other parameters in this tool to define scale levels, image format, storage format, and so on. This is the default.</para>
            /// <para>新建 - 使用此工具中的其他参数定义新的切片方案，以定义比例级别、影像格式、存储格式等。这是默认设置。</para>
            /// </summary>
            [Description("New")]
            [GPEnumValue("NEW")]
            _NEW,

            /// <summary>
            /// <para>Predefined</para>
            /// <para>Predefined—Use a tiling scheme .xml file that already exists on disk.</para>
            /// <para>预定义 - 使用切片方案.xml磁盘上已存在的文件。</para>
            /// </summary>
            [Description("Predefined")]
            [GPEnumValue("PREDEFINED")]
            _PREDEFINED,

        }

        /// <summary>
        /// <para>Number of Scales</para>
        /// <para>The number of scale levels to be created in the tiling scheme.</para>
        /// <para>要在切片方案中创建的比例级别数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of Scales")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public long? _number_of_scales { get; set; }


        /// <summary>
        /// <para>Predefined Tiling Scheme</para>
        /// <para>Path to a predefined tiling scheme file (usually named conf.xml). This parameter is enabled only when the Predefined option is chosen as the tiling scheme generation method.</para>
        /// <para>预定义切片方案文件（通常命名为 conf.xml）的路径。仅当选择“预定义”选项作为切片方案生成方法时，才会启用此参数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Predefined Tiling Scheme")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _predefined_tiling_scheme { get; set; } = null;


        /// <summary>
        /// <para>Scales</para>
        /// <para>Scale levels to be included in the tiling scheme. By default, these are not represented as fractions. Instead, use 500 to represent a scale of 1:500, and so on. The value entered in the Number of Scales parameter generates a set of default scale levels.</para>
        /// <para>要包含在切片方案中的比例级别。默认情况下，这些不表示为分数。相反，请使用 500 表示 1：500 的比例，依此类推。在比例数参数中输入的值将生成一组默认比例级别。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Scales")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _scales { get; set; } = null;


        /// <summary>
        /// <para>Cell Size</para>
        /// <para><xdoc>
        ///   <para>Determines the units of the Scales parameter.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The values of the Scales parameter are pixel sizes. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The values of the Scales parameter are scale levels.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定 Scales 参数的单位。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 比例参数的值为像素大小。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 比例参数的值为比例级别。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cell Size")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _scales_type_value _scales_type { get; set; } = _scales_type_value._false;

        public enum _scales_type_value
        {
            /// <summary>
            /// <para>CELL_SIZE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("CELL_SIZE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>SCALE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("SCALE")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Tile Origin in map units</para>
        /// <para>The origin (upper left corner) of the tiling scheme in the coordinates of the spatial reference of the source dataset. The extent of the source dataset must be within (but does not need to coincide) this region.</para>
        /// <para>源数据集空间参考坐标中切片方案的原点（左上角）。源数据集的范围必须位于此区域内（但不需要重合）。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tile Origin in map units")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _tile_origin { get; set; } = null;


        /// <summary>
        /// <para>Dots (Pixels) Per Inch</para>
        /// <para>The dots per inch of the intended output device. If a DPI is chosen that does not match the resolution of the output device, typically a display monitor, the scale of the tile will appear incorrect. The default value is 96.</para>
        /// <para>预期输出设备的每英寸点数。如果选择的 DPI 与输出设备（通常是显示监视器）的分辨率不匹配，则磁贴的比例将显示不正确。默认值为 96。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Dots (Pixels) Per Inch")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _dpi { get; set; } = 96;


        /// <summary>
        /// <para>Tile Size (in pixels)</para>
        /// <para><xdoc>
        ///   <para>The width and height of the cache tiles in pixels. The default is 256 by 256.</para>
        ///   <para>For the best balance between performance and manageability, avoid deviating from widths of 256 or 512.</para>
        ///   <bulletList>
        ///     <bullet_item>128 by 128 pixels— Tile width and height of 128 pixels.</bullet_item><para/>
        ///     <bullet_item>256 by 256 pixels—Tile width and height of 256 pixels.</bullet_item><para/>
        ///     <bullet_item>512 by 512 pixels—Tile width and height of 512 pixels.</bullet_item><para/>
        ///     <bullet_item>1024 by 1024 pixels—Tile width and height of 1024 pixels.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>缓存切片的宽度和高度（以像素为单位）。默认值为 256 x 256。</para>
        ///   <para>为了在性能和可管理性之间取得最佳平衡，请避免偏离 256 或 512 的宽度。</para>
        ///   <bulletList>
        ///     <bullet_item>128 x 128 像素— 128 像素的平铺宽度和高度。</bullet_item><para/>
        ///     <bullet_item>256 x 256 像素 - 切片宽度和高度为 256 像素。</bullet_item><para/>
        ///     <bullet_item>512 x 512 像素 - 切片宽度和高度为 512 像素。</bullet_item><para/>
        ///     <bullet_item>1024 x 1024 像素 - 切片宽度和高度为 1024 像素。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tile Size (in pixels)")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _tile_size_value _tile_size { get; set; } = _tile_size_value._256_x_256;

        public enum _tile_size_value
        {
            /// <summary>
            /// <para>128 by 128 pixels</para>
            /// <para>128 by 128 pixels— Tile width and height of 128 pixels.</para>
            /// <para>128 x 128 像素— 128 像素的平铺宽度和高度。</para>
            /// </summary>
            [Description("128 by 128 pixels")]
            [GPEnumValue("128 x 128")]
            _128_x_128,

            /// <summary>
            /// <para>256 by 256 pixels</para>
            /// <para>256 by 256 pixels—Tile width and height of 256 pixels.</para>
            /// <para>256 x 256 像素 - 切片宽度和高度为 256 像素。</para>
            /// </summary>
            [Description("256 by 256 pixels")]
            [GPEnumValue("256 x 256")]
            _256_x_256,

            /// <summary>
            /// <para>512 by 512 pixels</para>
            /// <para>512 by 512 pixels—Tile width and height of 512 pixels.</para>
            /// <para>512 x 512 像素 - 切片宽度和高度为 512 像素。</para>
            /// </summary>
            [Description("512 by 512 pixels")]
            [GPEnumValue("512 x 512")]
            _512_x_512,

            /// <summary>
            /// <para>1024 by 1024 pixels</para>
            /// <para>1024 by 1024 pixels—Tile width and height of 1024 pixels.</para>
            /// <para>1024 x 1024 像素 - 切片宽度和高度为 1024 像素。</para>
            /// </summary>
            [Description("1024 by 1024 pixels")]
            [GPEnumValue("1024 x 1024")]
            _1024_x_1024,

        }

        /// <summary>
        /// <para>Tile Format</para>
        /// <para><xdoc>
        ///   <para>The file format for the tiles in the cache.</para>
        ///   <bulletList>
        ///     <bullet_item>PNG—Creates PNG format with varying bit depths. The bit depths are optimized according to the color variation and transparency values in each tile.</bullet_item><para/>
        ///     <bullet_item>PNG-8—A lossless, 8-bit color, image format that uses an indexed color palette and an alpha table. Each pixel stores a value (0 to 255) that is used to look up the color in the color palette and the transparency in the alpha table. 8-bit PNGs are similar to GIF images and provide the best support for a transparent background by most web browsers.</bullet_item><para/>
        ///     <bullet_item>PNG-24—A lossless, three-channel image format that supports large color variations (16 million colors) and has limited support for transparency. Each pixel contains three 8-bit color channels, and the file header contains the single color that represents the transparent background. The color representing the transparent background color can be set in the application. Versions of Internet Explorer prior to version 7 do not support this type of transparency. Caches using PNG24 are significantly larger than those using PNG8 or JPEG, so will take more disk space and require greater bandwidth to serve clients.</bullet_item><para/>
        ///     <bullet_item>PNG-32—A lossless, four-channel image format that supports large color variations (16 million colors) and transparency. Each pixel contains three 8-bit color channels and one 8-bit alpha channel that represents the level of transparency for each pixel. While the PNG32 format allows for partially transparent pixels in the range from 0 to 255, the ArcGIS Server cache generation tool only writes fully transparent (0) or fully opaque (255) values in the transparency channel. Caches using PNG32 are significantly larger than the other supported formats, so will take more disk space and require greater bandwidth to serve clients.</bullet_item><para/>
        ///     <bullet_item>JPEG—A lossy, three-channel image format that supports large color variations (16 million colors) but does not support transparency. Each pixel contains three 8-bit color channels. Caches using JPEG provide control over output quality and size.</bullet_item><para/>
        ///     <bullet_item>Mixed compression—Creates PNG32 anywhere that transparency is detected (in other words, anyplace where the data frame background is visible), but creates JPEG for the remaining tiles. This keeps the average file size down while providing you with a clean overlay on top of other caches. This is the default.</bullet_item><para/>
        ///     <bullet_item>LERC compression—Limited Error Raster Compression (LERC) is an efficient lossy compression method recommended for single-band or elevation data with a large pixel depth (12 bit to 32 bit). Compresses between 10:1 and 20:1.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>缓存中切片的文件格式。</para>
        ///   <bulletList>
        ///     <bullet_item>PNG - 创建具有不同位深度的 PNG 格式。位深度根据每个图块中的颜色变化和透明度值进行优化。</bullet_item><para/>
        ///     <bullet_item>PNG-8 - 一种无损的 8 位彩色图像格式，使用索引调色板和 alpha 表。每个像素存储一个值（0 到 255），该值用于查找调色板中的颜色和 alpha 表中的透明度。8 位 PNG 类似于 GIF 图像，为大多数 Web 浏览器的透明背景提供最佳支持。</bullet_item><para/>
        ///     <bullet_item>PNG-24 - 一种无损的三通道图像格式，支持较大的颜色变化（1600 万种颜色），但对透明度的支持有限。每个像素包含三个 8 位颜色通道，文件头包含表示透明背景的单一颜色。可以在应用程序中设置表示透明背景颜色的颜色。版本 7 之前的 Internet Explorer 版本不支持此类型的透明度。使用 PNG24 的缓存比使用 PNG8 或 JPEG 的缓存大得多，因此会占用更多磁盘空间，并且需要更大的带宽来为客户端提供服务。</bullet_item><para/>
        ///     <bullet_item>PNG-32 - 一种无损的四通道图像格式，支持较大的颜色变化（1600 万种颜色）和透明度。每个像素包含三个 8 位颜色通道和一个 8 位 Alpha 通道，表示每个像素的透明度级别。虽然 PNG32 格式允许在 0 到 255 范围内使用部分透明像素，但 ArcGIS Server 缓存生成工具仅在透明度通道中写入完全透明 （0） 或完全不透明 （255） 值。使用 PNG32 的缓存明显大于其他支持的格式，因此会占用更多磁盘空间，并且需要更大的带宽来为客户端提供服务。</bullet_item><para/>
        ///     <bullet_item>JPEG - 一种有损的三通道图像格式，支持较大的颜色变化（1600 万种颜色），但不支持透明度。每个像素包含三个 8 位颜色通道。使用 JPEG 的缓存提供对输出质量和大小的控制。</bullet_item><para/>
        ///     <bullet_item>混合压缩 - 在检测到透明度的任意位置（换言之，数据框背景可见的任何位置）创建 PNG32，但为其余切片创建 JPEG。这样可以降低平均文件大小，同时在其他缓存之上为您提供干净的叠加层。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>LERC 压缩 - 有限误差栅格压缩 （LERC） 是一种高效的有损压缩方法，推荐用于具有较大像素深度（12 位至 32 位）的单波段或高程数据。压缩比例在 10：1 和 20：1 之间。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tile Format")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _tile_format_value _tile_format { get; set; } = _tile_format_value._MIXED;

        public enum _tile_format_value
        {
            /// <summary>
            /// <para>PNG</para>
            /// <para>PNG—Creates PNG format with varying bit depths. The bit depths are optimized according to the color variation and transparency values in each tile.</para>
            /// <para>PNG - 创建具有不同位深度的 PNG 格式。位深度根据每个图块中的颜色变化和透明度值进行优化。</para>
            /// </summary>
            [Description("PNG")]
            [GPEnumValue("PNG")]
            _PNG,

            /// <summary>
            /// <para>PNG-8</para>
            /// <para>PNG-8—A lossless, 8-bit color, image format that uses an indexed color palette and an alpha table. Each pixel stores a value (0 to 255) that is used to look up the color in the color palette and the transparency in the alpha table. 8-bit PNGs are similar to GIF images and provide the best support for a transparent background by most web browsers.</para>
            /// <para>PNG-8 - 一种无损的 8 位彩色图像格式，使用索引调色板和 alpha 表。每个像素存储一个值（0 到 255），该值用于查找调色板中的颜色和 alpha 表中的透明度。8 位 PNG 类似于 GIF 图像，为大多数 Web 浏览器的透明背景提供最佳支持。</para>
            /// </summary>
            [Description("PNG-8")]
            [GPEnumValue("PNG8")]
            _PNG8,

            /// <summary>
            /// <para>PNG-24</para>
            /// <para>PNG-24—A lossless, three-channel image format that supports large color variations (16 million colors) and has limited support for transparency. Each pixel contains three 8-bit color channels, and the file header contains the single color that represents the transparent background. The color representing the transparent background color can be set in the application. Versions of Internet Explorer prior to version 7 do not support this type of transparency. Caches using PNG24 are significantly larger than those using PNG8 or JPEG, so will take more disk space and require greater bandwidth to serve clients.</para>
            /// <para>PNG-24 - 一种无损的三通道图像格式，支持较大的颜色变化（1600 万种颜色），但对透明度的支持有限。每个像素包含三个 8 位颜色通道，文件头包含表示透明背景的单一颜色。可以在应用程序中设置表示透明背景颜色的颜色。版本 7 之前的 Internet Explorer 版本不支持此类型的透明度。使用 PNG24 的缓存比使用 PNG8 或 JPEG 的缓存大得多，因此会占用更多磁盘空间，并且需要更大的带宽来为客户端提供服务。</para>
            /// </summary>
            [Description("PNG-24")]
            [GPEnumValue("PNG24")]
            _PNG24,

            /// <summary>
            /// <para>PNG-32</para>
            /// <para>PNG-32—A lossless, four-channel image format that supports large color variations (16 million colors) and transparency. Each pixel contains three 8-bit color channels and one 8-bit alpha channel that represents the level of transparency for each pixel. While the PNG32 format allows for partially transparent pixels in the range from 0 to 255, the ArcGIS Server cache generation tool only writes fully transparent (0) or fully opaque (255) values in the transparency channel. Caches using PNG32 are significantly larger than the other supported formats, so will take more disk space and require greater bandwidth to serve clients.</para>
            /// <para>PNG-32 - 一种无损的四通道图像格式，支持较大的颜色变化（1600 万种颜色）和透明度。每个像素包含三个 8 位颜色通道和一个 8 位 Alpha 通道，表示每个像素的透明度级别。虽然 PNG32 格式允许在 0 到 255 范围内使用部分透明像素，但 ArcGIS Server 缓存生成工具仅在透明度通道中写入完全透明 （0） 或完全不透明 （255） 值。使用 PNG32 的缓存明显大于其他支持的格式，因此会占用更多磁盘空间，并且需要更大的带宽来为客户端提供服务。</para>
            /// </summary>
            [Description("PNG-32")]
            [GPEnumValue("PNG32")]
            _PNG32,

            /// <summary>
            /// <para>JPEG</para>
            /// <para>JPEG—A lossy, three-channel image format that supports large color variations (16 million colors) but does not support transparency. Each pixel contains three 8-bit color channels. Caches using JPEG provide control over output quality and size.</para>
            /// <para>JPEG - 一种有损的三通道图像格式，支持较大的颜色变化（1600 万种颜色），但不支持透明度。每个像素包含三个 8 位颜色通道。使用 JPEG 的缓存提供对输出质量和大小的控制。</para>
            /// </summary>
            [Description("JPEG")]
            [GPEnumValue("JPEG")]
            _JPEG,

            /// <summary>
            /// <para>Mixed compression</para>
            /// <para>Mixed compression—Creates PNG32 anywhere that transparency is detected (in other words, anyplace where the data frame background is visible), but creates JPEG for the remaining tiles. This keeps the average file size down while providing you with a clean overlay on top of other caches. This is the default.</para>
            /// <para>混合压缩 - 在检测到透明度的任意位置（换言之，数据框背景可见的任何位置）创建 PNG32，但为其余切片创建 JPEG。这样可以降低平均文件大小，同时在其他缓存之上为您提供干净的叠加层。这是默认设置。</para>
            /// </summary>
            [Description("Mixed compression")]
            [GPEnumValue("MIXED")]
            _MIXED,

            /// <summary>
            /// <para>LERC compression</para>
            /// <para>LERC compression—Limited Error Raster Compression (LERC) is an efficient lossy compression method recommended for single-band or elevation data with a large pixel depth (12 bit to 32 bit). Compresses between 10:1 and 20:1.</para>
            /// <para>LERC 压缩 - 有限误差栅格压缩 （LERC） 是一种高效的有损压缩方法，推荐用于具有较大像素深度（12 位至 32 位）的单波段或高程数据。压缩比例在 10：1 和 20：1 之间。</para>
            /// </summary>
            [Description("LERC compression")]
            [GPEnumValue("LERC")]
            _LERC,

        }

        /// <summary>
        /// <para>Tile Compression Quality</para>
        /// <para><xdoc>
        ///   <para>Enter a value between 1 and 100 for the JPEG or Mixed compression quality. The default value is 75.</para>
        ///   <para>Compression is supported only for Mixed and JPEG format. Choosing a higher value will result in higher-quality images, but the file sizes will be larger. Using a lower value will result in lower-quality images with smaller file sizes.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输入一个介于 1 和 100 之间的值作为 JPEG 或混合压缩质量。默认值为 75。</para>
        ///   <para>压缩仅支持混合格式和 JPEG 格式。选择更高的值将生成更高质量的图像，但文件大小会更大。使用较低的值将导致图像质量较低，文件大小较小。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tile Compression Quality")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _tile_compression_quality { get; set; } = 75;


        /// <summary>
        /// <para>Storage Format</para>
        /// <para><xdoc>
        ///   <para>Determines the storage format of tiles.</para>
        ///   <bulletList>
        ///     <bullet_item>Compact—Group tiles into large files called bundles. This storage format is more efficient in terms of storage and mobility. This is the default.</bullet_item><para/>
        ///     <bullet_item>Exploded—Each tile is stored as an individual file.Note that this format cannot be used with tile packages.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定切片的存储格式。</para>
        ///   <bulletList>
        ///     <bullet_item>紧凑 - 将切片分组到称为包的大文件中。这种存储格式在存储和移动性方面效率更高。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>分解 - 每个切片都存储为一个单独的文件。请注意，此格式不能用于切片包。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Storage Format")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _storage_format_value _storage_format { get; set; } = _storage_format_value._COMPACT;

        public enum _storage_format_value
        {
            /// <summary>
            /// <para>Compact</para>
            /// <para>Compact—Group tiles into large files called bundles. This storage format is more efficient in terms of storage and mobility. This is the default.</para>
            /// <para>紧凑 - 将切片分组到称为包的大文件中。这种存储格式在存储和移动性方面效率更高。这是默认设置。</para>
            /// </summary>
            [Description("Compact")]
            [GPEnumValue("COMPACT")]
            _COMPACT,

            /// <summary>
            /// <para>Exploded</para>
            /// <para>Exploded—Each tile is stored as an individual file.Note that this format cannot be used with tile packages.</para>
            /// <para>分解 - 每个切片都存储为一个单独的文件。请注意，此格式不能用于切片包。</para>
            /// </summary>
            [Description("Exploded")]
            [GPEnumValue("EXPLODED")]
            _EXPLODED,

        }

        /// <summary>
        /// <para>LERC Error</para>
        /// <para>Set the maximum tolerance in pixel values when compressing with LERC.</para>
        /// <para>使用 LERC 压缩时设置以像素值为单位的最大容差。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("LERC Error")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _lerc_error { get; set; } = null;


        public GenerateTileCacheTilingScheme SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}